package com.sanyue.springboot;

import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 全局异常器
 * 本文在
 * @author: Guan
 **/
//@ControllerAdvice：这个注解可以表示这是一个全局异常处理器
//会被注入到容器中
@ControllerAdvice
public class GlobalExceptionHandler {

    /**
     * 编写一个方法，处理指定异常
     *  解读：
     *   1.@ExceptionHandler：表示方法要处理异常
     *   2.注解的value值为要处理的异常，由程序员来制定，默认值为处理全部异常
     * @param e：异常反生后，传递的异常对象
     * @param m：可以将异常信息，放入model中，并传递给显示页面
     * @return
     */
    @ExceptionHandler({ArithmeticException.class, NullPointerException.class})
    public String handleAritException(Exception e, Model m){
        System.out.println("异常信息为：" + e.getMessage());
        System.out.println("全局异常处理器被调用");
        m.addAttribute("msg",e.getMessage());
        return "error/global";
    }
}
